#pragma once

namespace solver
{
	class problem_solver;

	class istrategy
	{
	public:
		virtual int int_to_name(int k) = 0;
		virtual variable_spin int_to_spin(int v) = 0;
		virtual int value_from_spin(variable_spin spin) = 0;
		virtual void write_decision_html(std::ostream& hout, solver::problem_solver* cur_problem, decision& d) = 0;
		virtual void write_decision(std::ostream& hout, solver::problem_solver* cur_problem, solver::decision& d) = 0;
		virtual void write_string(std::ostream& hout, solver::problem_solver* cur_problem, solver::decision_string& d) = 0;
	};
}
